# -*- coding: utf-8 -*-
from django.db import models
from model_utils.models import TimeFramedModel
from smart_selects.db_fields import ChainedForeignKey 
from abs_models.models import AbsNamedModel

class Clube(AbsNamedModel):
    "Representa um clube"
    sigla = models.CharField(max_length=3, blank=False, null=False)
    
    estado = models.ForeignKey('address.State')
    cidade = ChainedForeignKey('address.City',chained_field="estado", chained_model_field="state",show_all=False, auto_choose=True)
    
#    classificacao = models.SmallIntegerField(u"Classificação",blank=True,null=True)
    
    class Meta:
        app_label = 'clubes'
        
    def __unicode__(self):
        return "%s -%s" % (self.sigla, self.nome)
    
    @property
    def escalacao(self):
        return self.jogadores.filter(escalado=True).order_by('numero')
    
    @property
    def get_num_jogos(self):
        return self.partidas_mandante.filter(encerrada=True).count() + self.partidas_visitante.filter(encerrada=True).count()
    
#    @classmethod
#    def fazer_classificacao(cls):
#        for 
    
    @property
    def get_pontos(self):
        mandantes = self.partidas_mandante.filter(encerrada=True)
        visitantes = self.partidas_visitante.filter(encerrada=True)
        pts =  0
        for partida in mandantes:
            if partida.vencedor.pk == self.pk:
                pts= pts+3
            if partida.vencedor == None:
                pts= pts +1
                
        for partida in visitantes:
            if partida.vencedor.pk == self.pk:
                pts= pts+3
            if partida.vencedor == None:
                pts= pts +1
        return pts
    
    @property
    def get_num_vitorias(self):
        mandantes = self.partidas_mandante.filter(encerrada=True)
        visitantes = self.partidas_visitante.filter(encerrada=True)
        pts =  0
        for partida in mandantes:
            if partida.vencedor.pk == self.pk:
                pts= pts+1
                
        for partida in visitantes:
            if partida.vencedor.pk == self.pk:
                pts= pts+1
                
        return pts
    
    @property
    def get_num_empates(self):
        mandantes = self.partidas_mandante.filter(encerrada=True)
        visitantes = self.partidas_visitante.filter(encerrada=True)
        pts =  0
        for partida in mandantes:
            if partida.vencedor.pk == None:
                pts= pts+1
                
        for partida in visitantes:
            if partida.vencedor.pk == None:
                pts= pts+1
                
        return pts
    
    @property
    def get_num_derrotas(self):
        mandantes = self.partidas_mandante.filter(encerrada=True)
        visitantes = self.partidas_visitante.filter(encerrada=True)
        pts =  0
        for partida in mandantes:
            if partida.vencedor.pk != self.pk:
                pts= pts+1
                
        for partida in visitantes:
            if partida.vencedor.pk != self.pk: 
                pts= pts+1
                
        return pts
    
    @property
    def get_num_gols_pro(self):
        mandantes = self.partidas_mandante.filter(encerrada=True)
        visitantes = self.partidas_visitante.filter(encerrada=True)
        gols =  0
        for partida in mandantes:
            gols = gols + partida.placar[0]
                
        for partida in visitantes:
            gols = gols + partida.placar[1]
                
        return gols
    
    @property
    def get_num_gols_contra(self):
        mandantes = self.partidas_mandante.filter(encerrada=True)
        visitantes = self.partidas_visitante.filter(encerrada=True)
        gols =  0
        for partida in mandantes:
            gols = gols + partida.placar[1]
                
        for partida in visitantes:
            gols = gols + partida.placar[0]
            
        return gols
    
    
    @property
    def get_saldo_gols(self):
        return self.get_num_gols_pro - self.get_num_gols_contra
    
    
    
    
    
#    def get_num_vitorias(self):
#        mandantes = self.partidas_mandante.filter(encerrada=True)
#        visitantes = self.partidas_visitante.filter(encerrada=True)
#        for partida in mandantes:
#            #gols
#            num_gols = partida.infos.filter(tipo=1,jogador_ativo__in=self.escalacao(),gol_contra=False).count()
#            num_gols_levados = partida.infos.filter(tipo=1,jogador_ativo__in=self.escalacao(),gol_contra=True).count()
#            num_gols_levados = partida.infos.filter(tipo=1).exclude(infos__jogador_ativo__in=self.escalacao()).count()
#            if 
#        
#        gols_mandante = mandante.filter(infos__tipo=1,infos__jogador_ativo__in=self.escalacao(),infos__gol_contra=False)
#        gols_mandante_levados = gols_mandante.filter(infos__tipo=1)
#        
#        
#        
#        return self.partidas_mandante.filter(encerrada=True).count() + self.partidas_visitante.filter(encerrada=True).count()
    
        